// 类类型：类的类型，类的类型可以通过接口来实现
;
(function () {
    // 定义一个类，这个类的类型就是上面定义的接口(实际上也可以理解为IFly接口约束了当前的这个Person)类
    var Person = /** @class */ (function () {
        function Person() {
        }
        // 实现接口的方法
        Person.prototype.fly = function () {
            console.log('我会飞');
        };
        return Person;
    }());
    var person = new Person();
    person.fly();
    // 定义一个类，这个类的类型就是IFly和ISwim（当前这个类可以实现多个接口，一个类也可以被多个接口进行约束）
    var Person2 = /** @class */ (function () {
        function Person2() {
        }
        Person2.prototype.fly = function () {
            console.log('person2 fly');
        };
        Person2.prototype.swim = function () {
            console.log('swim');
        };
        return Person2;
    }());
    var person2 = new Person2();
    person2.fly();
    person2.swim();
    // 定义一个类，直接实现IMyFlyAndSwim接口
    var Person3 = /** @class */ (function () {
        function Person3() {
        }
        Person3.prototype.fly = function () {
            console.log('person3 fly');
        };
        Person3.prototype.swim = function () {
            console.log('swim3');
        };
        return Person3;
    }());
    var person3 = new Person3();
    person3.fly();
    person3.swim();
    /*
      总结：接口和接口之间叫继承（extends），类和接口之前叫实现（implements）
    */
})();
